The game uses the xml files for some (eventually all) text in the game. The files are named for their language (eg French.xml)
The default is
English.xml
When the game starts it first loads English.xml and then the language selected in Options. This means strings can be ommitted from a language and in that case you will just get the english words.
Each xml file must be saved using either UTF-8 or UTF-16 character encoding
Note Word Pad in Windows can save as Unicode (UTF-16). Most other editors can also. Notepad cannot.
Categories
The files are organised by categories
Buttons
- the labels of button in the game
Statistics
- the statistics used by slaves and slave makers
Introduction - text shown during the introduction screens
Planning
- text shown on the planning screens. There is a sub-section
Acts - the name of all acts/chores/schools. Note gender variants and special training variants
Shopping
- when visiting shops
EndGame
- shown in the end game screens
Equipment
- items in the game
Places
- places you walk to
Hints
- hints and tutorial text
SlaveMaker
- text specific to slave maker screens
Talents
- text for Slave Make talents
Diary
- entries in the diary or on the screen
Faith
- religion text
Options
- options screens
Rules
- rules screens
Morning
- morning screens
Contest
- text during contests
Other
- general text of a miscellaneous type
Events
- event text
Assistants
- Messages and spoken text by your assistant
General Translating
To translate replace the contents of the tags, DO NOT rename the tags
eg
<Charisma>Charisma :</Charisma>
<Sensibility>Sensibility :</Sensibility>
In French
<Charisma>Charisme :</Charisma>
<Sensibility>Sensibilité :</Sensibility>
Note you will see line breaks in some strings. When shown in the game these will generally be seen as a line break and a blank line. If you only want a line break you will have to embed a <br> tag (see below)
Some have punctuation like : at the end. Please try to retain if valid in your language.
There are some comments for some strings. There is no need to translate the comments, they are given as guides for translation
eg
<!-- The following has Master or your Slave Maker's name preceeding
eg
Master, while Ranma is training under my supervision, what would you like to do?
-->
<SlaveMakerTraining>, while #slaveis training under my supervision, what would you like to do?</SlaveMakerTraining>
Attributes
There are some special attributes that can be used
fontsize - changes the point size of the font used for the text. It is a relative value, so -2 is 2 points smaller. Use this if your text overflows the available area
eg
<Complete fontsize='-2'>Fin du Dressage</Complete>
spacing - changes the spacing between characters the font used for the text. use values -1, -2 or -0.5. This compresses the text a little but keeps the point size. Note some fields already have a spacing set (most are 0 or -1)
eg
<Sensibility spacing="-1">×óâñòâèòåëüíîñòü:</Sensibility>
Note: generally use fontsize, just use spacing for stats and similar where you have many similar text fields and it would look odd to change the font size
Other notes
Html
<CombatSkillLevels>you have a bonus of <b>#value</b>.</CombatSkillLevels>
The text is html encoded and is some places you can use tags like <b> etc. These tags must be encoded using ampersand syntax required by xml and html.
eg
< is a <
> is a >
& is an &
Macros
eg
<FirstContest>Today is the first of a series of competitions #slaveheshe can enter, competing against other slaves and other people.
These contests occur every 8 days from the first day of the year.</FirstContest>
<LaterContests>#slave can compete in a contest again.</LaterContests>
There are macros for inserting special text into the string
#slave
- will be replaced by the slaves name,
eg Ranma
#assistant
- will be replaced by your servants name,
eg Shampoo
#slavesee
- slavename sees or slavename see, depending on if they are one person or twins
eg
Ranma sees
or
Mara & Nara see
#slaveheshe - he/she/they based on gender of your slave
#slavehimher- him/her/them based on gender of your slave
#slavehisher
- his/her/them based on gender of your slave
#slaveis
- SlaveName is, or SlaveName are for twins
eg
Ranma is
or
Mara & Nara are
#slavehas
- slave has, or slavename have for twins
eg Ranma has
#slaveA
- SlaveA, usually this is the slave's name. For twins it is one of the slaves picked at random
#slaveB
- SlaveB, the other twin than SlaveA (or SlaveName for non-twins)
#assistantA
- ServantA, as above but for your assistant
#assistantB
- ServantB, ditto
#assistantheshe - he/she/they based on gender of your assistant
#assistanthimher - him/her/them based on gender of your assistant
#assistanthisher - his/her/them based on gender of your assistant
#assistantis
- Servantname is
eg Mugi is
#assistanthas - Servantname has
eg Mugi has
#super
- the name of the person supervising, either 'you' or your assistants name
Remember there are set by the core game.
In some cases you will also see
#value
- this is used for cases where a value like a number is to be inserted into the string.
eg
<CombatSkillLevels>you have a bonus of #value.</CombatSkillLevels>
You can delete these macros if needed for your translation and replace as needed, but be aware of gender issues, for instance for
male slaves
female slaves
twins
DO NOT remove any #value references
Slave Details
The descriptions of the slaves that appear in the slave market screen can also be translated.
In the folder
Slaves
there are files
SlaveGirl1.txt
SlaveGirl2.txt
etc
To translate
1) copy these files and rename to
SlaveGirl1-language.txt
eg
SlaveGirl1-French.txt
2) edit the file and translate the text after girldesc=
eg
girlname=Shampoo&girldesc=Une fille que vous avez rencontré sur le chemin de la Capitale. Vous l'obsédez au point qu'elle s'est vendue pour devenir votre assistante.&image=Slave-Shampoo.png&gamefile=Slave-Shampoo.swf&mode=easy
You may translate the slave's name (ie Shampoo above) if you want, particularly for languages using a different alphabet like Russian etc. This is a matter of preference.
Do not translate any other parts like the mode=easy.
3) Save the file using UTF-8/UTF-16 character encoding.
4) repeat for the remaining files